package com.example.zlpermissionservice.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.zlpermissionservice.dto.response.ResourceResDTO;
import com.example.zlpermissionservice.entity.Resource;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Author zhenliu（孙凌岳）
 * @Description AI生成
 * @Date 2025/6/15 19:30
 * @Version 1.0
 */
@Mapper
public interface ResourceMapper extends BaseMapper<Resource> {
    /**
     * 根据角色id获取角色对应资源
     * @param userId
     * @return
     */
    List<ResourceResDTO> findResourceResDTOListByUserId(@Param("userId") Long userId);

    /**
     * 根据角色id列表范围查询角色对应的菜单（顶部栏）资源
     * @param roleIds
     * @return
     */
    List<ResourceResDTO> findResourceResDTOListInRoleId(@Param("roleIds") List<Long> roleIds);

    /**
     * 根据角色id列表范围查询角色对应的按钮资源
     * @param roleIds
     * @return
     */
    List<ResourceResDTO> findButtonResDTOListInRoleId(@Param("roleIds") List<Long> roleIds);

    /**
     * 是否存在菜单子节点
     *
     * @param menuId 菜单ID
     * @return 结果
     */
    int hasChildByMenuId(@Param("menuId") String menuId);
}
